<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * Funciones de arrays | Requiere string_my_helper
 * Recopilacion 
 * deepsteal@hotmail.com
 */
// ------------------------------------------------------------------------

/**
 * Make_key
 * Asigna un Key a los items de un array
 * 
 * @author Edgardo Segura 
 * @example
 * @see
 * @link {}
 * @since 16/02/2009
 * @version
 * @access	public
 * @param	indistinct
 * @return	array
 */	
if ( ! function_exists('make_key'))
{
	function make_key($array,$key)
	{			
		foreach ($array as $actual)
		{
			$items[]=array($key=>$actual);	
		}
				
		return $items;
	}
}
// ------------------------------------------------------------------------

/**
 * Force_array
 * Retorna array de un array o string dado
 * 
 * @author Edgardo Segura 
 * @example
 * @see
 * @link {}
 * @since 16/02/2009
 * @version
 * @access	public
 * @param	indistinct
 * @return	array
 */	
if ( ! function_exists('force_array'))
{
	function force_array($content_selector_t)
	{
		
		if(!is_array($content_selector_t))
		{
			$content_selector[]=$content_selector_t;
		}
		else
		{
			$content_selector=$content_selector_t;
		}
	
		return $content_selector;
	}
}
// ------------------------------------------------------------------------

/**
 * Exclude_term
 * Retorna array con un termino excluido
 * 
 * @author Edgardo Segura 
 * @example
 * @see
 * @link {}
 * @since 16/02/2009
 * @version
 * @access	public
 * @param	indistinct
 * @return	array
 */	
if ( ! function_exists('exclude_term'))
{
	function exclude_term($string,$in){
		
		foreach ($in as $actual)
		{
			if(!substr_hexist($actual,$string))
			{
				$result[] = $actual;
			}
		}		
		return $result;
	}
}
// ------------------------------------------------------------------------

/**
 * Include_term
 * Retorna array con los terminos coincidentes
 * 
 * @author Edgardo Segura 
 * @example
 * @see
 * @link {}
 * @since 16/02/2009
 * @version
 * @access	public
 * @param	indistinct
 * @return	array
 */	
if ( ! function_exists('include_term'))
{
	function include_term($string,$in){
		
		foreach ($in as $actual)
		{
			if(substr_hexist($actual,$string))
			{
				$result[] = $actual;
			}
		}		
		return $result;
	}
}
// ------------------------------------------------------------------------


/**
 * GetArray2Digits
 * 
 * Retorna array con un rango de numeros dado y 0 delante en el caso de los menores a 2 digitos
 * 
 * @author Edgardo Segura 
 * @example
 * @see
 * @link {}
 * @since 16/02/2009
 * @version
 * @access	public
 * @param	int, int
 * @return	array
 */	
if ( ! function_exists('getArray2Digits'))
{
	function getArray2Digits($num1,$num2){
		
		if($num1<10){
			for($x=$num1;$x<=$num2;$x++)
			{
				$num = (strlen($x)==1) ? "0".$x : $x;
				$ret[$num] = $num; 
			}
		}
		else
		{
			$ret = range($num1,$num2);
		}	
		return $ret;
	}
}
// ------------------------------------------------------------------------

/**
 * Array_mix
 * Suma elementos de un array y elimina los repetidos
 * 
 * @author Edgardo Segura 
 * @example
 * @see
 * @link {}
 * @since 16/02/2009
 * @version
 * @access	public
 * @param	array, array
 * @return	array
 */
if ( ! function_exists('array_mix'))
{
	function array_mix($array,$array)
	{	
		return array_unique(array_merge($obj1,$obj2));
	}
}
// ------------------------------------------------------------------------

/**
 * Primeros_items *
 * Retorna los primeros n items de un array
 * 
 * @author Edgardo Segura 
 * @example
 * @see
 * @link {}
 * @since 16/02/2009
 * @version
 * @access	public
 * @param	array, int
 * @return	array
 */
if ( ! function_exists('primeros_items'))
{
	function primeros_items($array,$num)
	{
		$resultado = array_chunk($array,$num);
		return $resultado[0];
	}
}
// ------------------------------------------------------------------------

/**
 * Array_con_inicial *
 * Retorna items de un array que contengan un caracter inicial dado
 * 
 * @author Edgardo Segura 
 * @example
 * @see
 * @link {}
 * @since 16/02/2009
 * @version
 * @access	public
 * @param	array, char
 * @return	array
 */
if ( ! function_exists('array_con_inicial'))
{
	function array_con_inicial($array,$inicial){	
		foreach($array as $actual)
		{
			$temp=$actual;
			$inicial=strtolower($inicial);
			$actual=strtolower($actual);	
				if($actual[0]==$inicial)
				{
					$resultado[]=$temp;
				}					
		}	
		return $resultado;
	}
}
// ------------------------------------------------------------------------

/**
 * Restar_arrays
 * Retorna la resta de un array contra otro
 * 
 * @author Edgardo Segura 
 * @example
 * @see
 * @link {}
 * @since 16/02/2009
 * @version
 * @access	public
 * @param	array, array
 * @return	array
 */
if ( ! function_exists('restar_arrays'))
{
	function restar_arrays($total,$menos){	
		foreach ($menos as $value)
		{
			$num = array_search($value,$total);
			if($num!=null)
			{
				unset($total[$num]);
			}			
		}	
		return  $total;	
	}
}
// ------------------------------------------------------------------------

/**
 * Dos_columna_alfabeticas *
 * Genera dos columnas ordenadas alfabeticamente, con el contenido de un array
 * 
 * @author Edgardo Segura 
 * @example
 * @see
 * @link {}
 * @since 16/02/2009
 * @version
 * @access	public
 * @param	array, array
 * @return	array
 */
if ( ! function_exists('dos_columna_alfabeticas'))
{
	function dos_columna_alfabeticas($array){
		
		$keys = array_keys($array);	
		$total = count($array);
		
		for($i=0;$i<$total;$i++)
		{
			if(($i<($total/2)))
			{
				$col1[]=$array[$keys[$i]];
			}
			else
			{
				$col2[]=$array[$keys[$i]];
			}		
		}
		
		for($i=0;$i<$total;$i++)
		{
			if(($i%2)==0)
			{
				$resultado[]=array_shift($col1);
			}
			else
			{
				$resultado[]=array_shift($col2);
			}		
		}
		
		return $resultado;
	}
}
// ------------------------------------------------------------------------

/**
 * Array_por_palabras
 * Retorna con los items de un array que contengan palabras encontradas en otro array
 * 
 * @author Edgardo Segura 
 * @example
 * @see
 * @link {}
 * @since 16/02/2009
 * @version
 * @access	public
 * @param	array, array , string
 * @return	array
 */
if ( ! function_exists('array_por_palabras'))
{
	function array_por_palabras($array_total, $array_palabras, $modo='igual'){
	
		if($modo=='igual')
		{
			foreach($array_total as $actual)
			{
				if(in_array($actual,$array_palabras))
				{
					$resultado[] = $actual;
				}		
			}
			return $resultado;
		}else{
			if($modo=='similar')
			{
				foreach($array_total as $actual)
				{
						foreach($array_palabras as $pa_actual)
						{
							$comparacion = strcasecmp($pa_actual,$actual);					
							if($comparacion==0 or ($comparacion > 0 and $comparacion < 2))
							{
								$resultado[]=$actual;
							}
						}		
					}			
				return $resultado;
			}else{
					if($modo=='encuentra'){
					foreach($array_total as $actual)
					{
							foreach($array_palabras as $pa_actual)
							{
								if(substr_count($actual,$pa_actual)>0)
								{
									$resultado[]=$actual;
								}
							}		
						}			
					return $resultado;
				}	
			}
		}	
	}
}
// ------------------------------------------------------------------------

/* End of file array_my_helper.php */
/* Location: ./system/application/helpers/array_my_helper.php */